AWK প্রোগ্রামিং ভাষায় Complex Pattern Matching ব্যবহার করে আপনি জটিল প্যাটার্নের ভিত্তিতে ডেটা ফিল্টার এবং প্রক্রিয়া করতে পারেন। Complex Pattern Matching সাধারণত Regular Expressions, শর্তাবলী, এবং লজিক্যাল অপারেটরগুলির সমন্বয়ে তৈরি করা হয়। এটি বিশেষত বৃহৎ ডেটাসেটের মধ্যে নির্দিষ্ট ধরনের তথ্য খুঁজে বের করার ক্ষেত্রে কার্যকরী।
AWK এ Complex Pattern Matching তৈরি করতে বিভিন্ন উপাদান ব্যবহার করা হয়, যেমন:
&&
, ||
, !
– একাধিক শর্ত যুক্ত করতে।awk '$1 ~ /^[A-Z]/ && $2 > 100 {print $0}' filename.txt
এখানে:
$1 ~ /^[A-Z]/
শর্তটি চেক করে যে প্রথম কলামের মান বড় হাতের অক্ষরে শুরু হয়েছে কিনা।$2 > 100
শর্তটি চেক করে যে দ্বিতীয় কলামের মান ১০০ এর বেশি কিনা।&&
লজিক্যাল অপারেটর ব্যবহার করে দুইটি শর্তকে একত্রিত করা হয়েছে।এই প্যাটার্নটি ম্যাচ হলে পুরো লাইন প্রিন্ট করা হবে।
awk '$1 == "Error" || $3 ~ /critical/ {print $1, $3}' filename.txt
এখানে:
$1 == "Error"
শর্তটি চেক করে যে প্রথম কলাম "Error" কিনা।$3 ~ /critical/
শর্তটি চেক করে যে তৃতীয় কলামে "critical" শব্দটি রয়েছে কিনা।||
লজিক্যাল অপারেটর ব্যবহার করে শর্তগুলির মধ্যে OR সম্পর্ক স্থাপন করা হয়েছে।এই কমান্ডটি "Error" বা "critical" শব্দ যুক্ত লাইনগুলি প্রিন্ট করবে।
awk '!($2 ~ /skip/) && $4 > 50 {print $0}' filename.txt
এখানে:
!($2 ~ /skip/)
শর্তটি চেক করে যে দ্বিতীয় কলামে "skip" শব্দটি নেই।$4 > 50
শর্তটি চেক করে যে চতুর্থ কলামের মান ৫০ এর বেশি।&&
অপারেটর ব্যবহার করে দুটি শর্ত যুক্ত করা হয়েছে।যদি দ্বিতীয় কলামে "skip" না থাকে এবং চতুর্থ কলামের মান ৫০ এর বেশি হয়, তবে সেই লাইনটি প্রিন্ট হবে।
awk '/^START/ || /END$/ {print "Boundary:", $0} $3 ~ /^[0-9]+$/ {print "Number:", $3}' filename.txt
এখানে:
/^START/ || /END$/
অংশটি এমন লাইনগুলিকে খুঁজে বের করবে যা "START" শব্দ দিয়ে শুরু হয় বা "END" শব্দ দিয়ে শেষ হয় এবং প্রিন্ট করবে "Boundary" সহ।$3 ~ /^[0-9]+$/
অংশটি তৃতীয় কলামে শুধুমাত্র সংখ্যা আছে কিনা চেক করবে এবং সেই মান "Number" সহ প্রিন্ট করবে।AWK এ Complex Pattern Matching ব্যবহার করে জটিল ডেটা ফিল্টারিং এবং প্রসেসিং সহজে করা যায়। Regular Expressions, লজিক্যাল অপারেটর এবং শর্তাবলী ব্যবহার করে AWK প্রোগ্রামে উন্নত প্যাটার্ন ম্যাচিং তৈরি করা সম্ভব। এর ফলে, বড় ডেটাসেটের মধ্যে নির্দিষ্ট তথ্য খুঁজে বের করা, ফিল্টার করা এবং প্রক্রিয়া করা আরও কার্যকর হয়।
common.read_more